package org.exhaust.framework.net.common.protocol;

import io.netty.channel.Channel;

public interface ChannelEventHandler {

    /**
     * 激活
     *
     * @param channel
     */
    void channelActive(Channel channel);

    /**
     * @param channel
     */
    void channelInActive(Channel channel);

    /**
     * 注册
     *
     * @param channel
     */
    void channelRegistered(Channel channel);

    /**
     * 解除注册
     *
     * @param channel
     */
    void channelUnRegistered(Channel channel);

    /**
     * 通道读空闲
     *
     * @param channel
     */
    void channelReaderIdle(Channel channel);

    /**
     * 通道写空闲
     *
     * @param channel
     */
    void channelWriterIdle(Channel channel);

    void exceptionCaught(Channel channel, Throwable throwable);

}
